"""
auth-xgt-python
datetime-2021/11/7
爬取前程无忧招聘网
"""
import requests
import re
import json # 序列化与反序列化
import pprint # 格式化输出模块
import csv

f = open('前程招聘.csv',mode='a',encoding='utf-8',newline='') 
csv_write = csv.DictWriter(f,fieldnames=[
        '标题',
        '公司名字',
        '薪资',
        '地区',
        '工作经验',
        '学历',
        '福利待遇',
        '公司规模',
        '公司属性',
        '公司类型',
        '发布日期',
        '公司详情页',
        '招聘详情页',
])
csv_write.writeheader()

# 获取网页源代码
url = 'https://search.51job.com/list/000000,000000,0000,00,9,99,python,2,1.html'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'
}
response = requests.get(url=url,headers=headers)

# print(response.text)

# 从网页源代码中提取想要的数据

html_data = re.findall('window.__SEARCH_RESULT__ = (.*?)</script>',response.text)[0]
# print(html_data)   # 正则表达式匹配的数据返回的类型是一个列表
json_data = json.loads(html_data)['engine_jds']
# print(json_data)
# print(type(json_data))
# pprint.pprint(json_data)
# for 遍历提取列表中的元素
for index in json_data:
    # pprint.pprint(index)
    dit = {
        '标题':index['job_name'],
        '公司名字':index['company_name'],
        '薪资':index['providesalary_text'],
        '地区':index['workarea_text'],
        # '基本信息':','.join(index['attribute_text'][1:]),
        '工作经验':index['attribute_text'][1],
        '学历':index['attribute_text'][2],
        '福利待遇':index['jobwelf'],
        '公司规模':index['companysize_text'],
        '公司属性':index['companytype_text'],
        '公司类型':index['companyind_text'],
        '发布日期':index['updatedate'],
        '公司详情页':index['company_href'],
        '招聘详情页':index['job_href'],
    }
    csv_write.writerow(dit)
    print(dit)











